import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    //定义全局参数 其他页面可以直接获取state里面的内容
    state: {
        token: '',//方法一 localStorage.getItem("token")
        //反序列化获取session会话中的 userInfo对象
        userInfo: JSON.parse(sessionStorage.getItem("userInfo"))
    },
    mutations: {
        // set
        SET_TOKEN: (state, token) => {
            state.token = token//将传入的token赋值 给state的token
            //同时可以存入浏览器的localStorage里面
            localStorage.setItem("token", token)
        },
        SET_USERINFO: (state, userInfo) => {
            state.userInfo = userInfo//将传入的tuserInfo赋值 给state的userInfo
            //同时可以存入会话的sessionStorage里面 sessionStorage中只能存字符串 不能存入对象所以我们存入序列化 jons串
            sessionStorage.setItem("userInfo", JSON.stringify(userInfo))
        },
        //删除token及userInfo
        REMOVE_INFO: (state) => {
            state.token = ''
            state.userInfo = {}
            localStorage.setItem("token", '')
            sessionStorage.setItem("userInfo", JSON.stringify(''))
        }
    },
    getters: {
        // get
        //配置一个getUser可以直接获取已经反序列化对象的一个userInfo
        getUser: state => {
            return state.userInfo
        },getToken: state=>{
            return state.token;
        }
    },
    actions: {},
    modules: {}
})
